Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / tests / backend / test_reticulum_live_network.py

Displaying Raw • Download


tests/backend/test_reticulum_live_network.py 8522a5fd9eee9dd0e2dd6a587fa55fe6a624a9ae (8522a5fd) Text, 1.31 KB

T8b949e# SPDX-License-Identifier: 0BSD

T8b949e"""Optional live Reticulum smoke test.

Reticulum is a process-wide singleton; this test runs a short script in a
subprocess so it does not interfere with other tests.

Enable with: MESHCHAT_LIVE_RETICULUM=1

This does not replace multi-node mesh interoperability testing; it only
verifies that a default-config Reticulum instance can start and exit cleanly
in an isolated config directory (useful after RNS upgrades or OS changes).
"""

Tff7b72import T7ee787os
Tff7b72import T7ee787subprocess
Tff7b72import T7ee787sys

Tff7b72import T7ee787pytest

Tff7b72from T7ee787testsT7ee787.T7ee787backendT7ee787.T7ee787supportT7ee787.T7ee787test_temp_dir Tff7b72import Te6edf3subprocess_test_env

Te6edf3_RUN Tff7b72= Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffMESHCHAT_LIVE_RETICULUMTa5d6ff"Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ff1Ta5d6ff"


Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffintegration
Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffskipifTb4b4b4(
Tff7b72not Te6edf3_RUNTb4b4b4,
Te6edf3reasonTff7b72=Ta5d6ff"Ta5d6ffSet MESHCHAT_LIVE_RETICULUM=1 to run live Reticulum subprocess smoke testTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8fftest_reticulum_subprocess_start_and_exitTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3script Tff7b72= Ta5d6ffrTa5d6ff"""
Ta5d6ffimport tempfile
Ta5d6ffimport RNS

Ta5d6fftmpdir = tempfile.mkdtemp(prefix=Ta5d6ff"Ta5d6ffmeshchat_rns_live_Ta5d6ff"Ta5d6ff)
Ta5d6fftry:
Ta5d6ff RNS.Reticulum(configdir=tmpdir, loglevel=RNS.LOG_ERROR)
Ta5d6fffinally:
Ta5d6ff RNS.exit(0)
Ta5d6ff"""
Te6edf3result Tff7b72= Te6edf3subprocessTff7b72.Td2a8ffrunTb4b4b4(
Tb4b4b4[Te6edf3sysTff7b72.Td2a8ffexecutableTb4b4b4, Ta5d6ff"Ta5d6ff-cTa5d6ff"Tb4b4b4, Te6edf3scriptTb4b4b4]Tb4b4b4,
Te6edf3capture_outputTff7b72=Tff7b72TrueTb4b4b4,
Te6edf3textTff7b72=Tff7b72TrueTb4b4b4,
Te6edf3timeoutTff7b72=T79c0ff120Tb4b4b4,
Te6edf3checkTff7b72=Tff7b72FalseTb4b4b4,
Te6edf3envTff7b72=Te6edf3subprocess_test_envTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3resultTff7b72.Td2a8ffreturncode Tff7b72== T79c0ff0Tb4b4b4, Te6edf3resultTff7b72.Td2a8ffstderr Tff7b72+ Te6edf3resultTff7b72.Td2a8ffstdout


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────